/*
 * Copyright 2010 Gal Dolber.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */
package com.unnison.demo.client;

import com.google.gwt.inject.client.AbstractGinModule;
import com.google.inject.Singleton;

import com.unnison.demo.client.alerter.AlerterModule;
import com.unnison.demo.client.attacher.RootLayoutPanelAttacherModule;
import com.unnison.demo.client.blippanel.Blip;
import com.unnison.demo.client.blippanel.BlipPanel;
import com.unnison.demo.client.complexplace.ComplexPlacePresenter;
import com.unnison.demo.client.dynamic.DynamicPresenter;
import com.unnison.demo.client.jsonserializer.JsonSerializerPresenter;
import com.unnison.demo.client.login.LoginPresenter;
import com.unnison.demo.client.main.MainPresenter;
import com.unnison.demo.client.main.MainPresenterImpl;
import com.unnison.demo.client.microevents.MicroeventsPresenter;

public class DemoModule extends AbstractGinModule {

    @Override
    protected void configure() {
        bind(MainPresenter.class).to(MainPresenterImpl.class).in(Singleton.class);
        bind(MicroeventsPresenter.class).in(Singleton.class);
        bind(LoginPresenter.class).in(Singleton.class);
        bind(DynamicPresenter.class).in(Singleton.class);
        bind(ComplexPlacePresenter.class).in(Singleton.class);
        bind(JsonSerializerPresenter.class).in(Singleton.class);
        bind(BlipPanel.class).in(Singleton.class);
        bind(Blip.class);
        
        install(new AlerterModule());
        install(new RootLayoutPanelAttacherModule());
    }
}
